package com.example.projetoandroid;

import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class UsuariosDB {
	
	private SQLiteDatabase db;
	private SQLiteHelper dbHelper;
	private static final String SCRIPT_DB_DELETE = 
			"DROP TABLE IF EXISTS usuarios";
	private static final String SCRIPT_DB_CREATE = 
			"create table usuarios (_id integer primary "
			+ "key autoincrement, nome text not null, "
			+ "login text not null, senha text not null);";
	
	public UsuariosDB(Context ctx) {
		dbHelper = new SQLiteHelper(ctx, "projeto", 1, SCRIPT_DB_CREATE,
				SCRIPT_DB_DELETE);
	}
	
	public long inserir(Usuario u) {
		ContentValues cv = new ContentValues();
		cv.put("nome", u.nome);
		cv.put("login", u.login);
		cv.put("senha", u.senha);
		db = dbHelper.getWritableDatabase();
		long id = db.insert("usuarios", null, cv);
		u.id = id;
		
		db.close();
		return id;
	}
	
	public long atualizar(Usuario u) {
		ContentValues cv = new ContentValues();
		cv.put("nome", u.nome);
		cv.put("login", u.login);
		cv.put("senha", u.senha);

		db = dbHelper.getWritableDatabase();
		long rows = db.update("usuarios", cv, "_id = ?",
				new String[] { String.valueOf(u.id) });
		db.close();
		return rows; // qtde. de linhas afetadas
	}
	
	public int excluir(int id) {
		db = dbHelper.getWritableDatabase();
		int rows = db.delete("usuarios", "_id = ?",
				new String[] { String.valueOf(id) });
		return rows; // qtde. de linhas afetadas
	}
	
	public List<Usuario> getUsuarios() {
		List<Usuario> lista = new ArrayList<Usuario>();

		db = dbHelper.getWritableDatabase();
		Cursor c = db.rawQuery("select * from usuarios", null);

		while (c.moveToNext()) {
			Usuario usuario= fillUsuario(c);
			lista.add(usuario);
		}
		c.close();
		db.close();
		return lista;
	}
	
	private Usuario fillUsuario(Cursor c) {
		Usuario usuario = new Usuario(
				c.getLong(0), 
				c.getString(1), 
				c.getString(2),
				c.getString(3), null);
		return usuario;
	}
}
